package io.esirong.bus;

import java.io.Serializable;

/**
 * 基础的Event
 * <p>实现接口Serializable
 * 通过 定义Action属性来作事件的分类。在对应的分类下正确处理不同类别的总线数据 [T]
 *
 * @param <T>
 * @author 黄嵘才(HuangRc)
 */
public class Event<T> implements Serializable {

    private String action;
    private T data;


    /**
     * 构造函数
     *
     * @param action event的动作，行为，作用
     */
    public Event(String action) {
        this.action = action;
    }

    /**
     * 构造函数
     *
     * @param action event的动作，行为，作用
     * @param data   附带的数据（使用者自行转换类型处理）
     */
    public Event(String action, T data) {
        this.action = action;
        this.data = data;
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}
